Increased availability and use of internet technology is making it possible to distribute multimedia content to users using the internet and internet protocol (IP). Anyone with access to the internet can become a content provider by uploading digital audio or video to a streaming media service and make the uploaded content available to thousands of users. The operational details of providing access to the users to the uploaded content are then taken care of by the streaming media service platform.
A streaming media platform facilitates distribution of audio video programs, or media content, to users. The streaming media platform may store content on storage media; e.g., a magnetic hard drive that may be available locally or via a storage area network connection. Users may be able to browse through the available content and request transmission of a desired video program. The content may then be sent to the user's device using one of many possible transmission protocols.
In some implementations, a server-controlled protocol may be used for delivering media to user devices. In a server-controlled streaming protocol, a server may keep track of packets sent to a particular user device and may also manage the rate at which to send the media data to the user device and the amount to be sent each time. The Real Time Streaming Protocol (RTSP) is an example of a server-controlled protocol. The Flash Media Server (FMS) is a commercially available product by Adobe Systems, and is a popular streaming media server that is used by many providers of streaming media solutions. Deployment examples of FMS are used herein for illustrative purpose only and not as a limitation to the disclosed embodiments. Commercially available streaming media server platforms; e.g., FMS, are often available to streaming media service providers as a “black box” in that the streaming media service providers cannot alter the software but can only build solutions using application programming interfaces (APIs) provided by the streaming media server platforms.
Even with off-the-shelf streaming media servers being commercially available, content providers still have to overcome several technical challenges to be able to stream content to multiple users. This task becomes even more difficult because of prevailing use of many different video encoding and streaming standards, and implementations of these encoding and streaming standards by different vendors, resulting in many different variations of encoded video bitstreams, and corresponding multiple different versions of streaming media players that receive and display content on user devices.
As a result of such multiplicity of video encoder implementations and video player implementations, making code changes to the streaming media platform poses an extremely complex technical problem. Furthermore, the streaming media platform operator may be subject to additional complexity by having to test compatibility between the variations in streaming media formats, generated by different encoders and streaming media players, implemented by different vendors.